﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace QLKS
{
    public partial class fBaoCaoDoanhThu : Form
    {
        public fBaoCaoDoanhThu()
        {
            InitializeComponent();
            _timer.Tick += new EventHandler(timer_Tick);
            _timer.Interval = 1000;
            _timer.Enabled = true;
            _timer.Start();
        }

        Timer _timer = new Timer();//cập nhật trạng thái đăng nhập của người dùng
        private bool _ktdangnhap;//biến tạm kiểm tra trạng thái đăng nhập

        /// <summary>
        /// Kiểm tra người dùng đăng nhập chưa,
        /// nếu đăng nhập rồi thì cho phép thao tác,
        /// nếu chưa thì không cho phép thao tác
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fBaoCaoDoanhThu_Load(object sender, EventArgs e)
        {
            dataGridView1.DataSource = null;
            if (MainForm.ktdangnhap == true) //người dùng đã đăng nhập thì cho phép thao tác
            {
                tbnam.Text = DateTime.Now.Year.ToString();
                tbthang.Enabled = true;
                tbnam.Enabled = true;
                btxem.Enabled = true;
                dataGridView1.Enabled = true;
                _ktdangnhap = MainForm.ktdangnhap;
            }
            else //ngược lại không cho thao tác
            {
                tbthang.Enabled = false;
                tbnam.Enabled = false;
                btxem.Enabled = false;
                dataGridView1.Enabled = false;
                _ktdangnhap = MainForm.ktdangnhap;
            }
        }

        /// <summary>
        /// Không nhận ký tự là chữ, nhận ký tự là số
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbthang_tbnam_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsDigit(e.KeyChar) && !Char.IsControl(e.KeyChar))
                e.Handled = true;
        }

        /// <summary>
        /// Nếu người dùng nhập tháng lớn hơn 12 thì sửa tháng lại là 12, nếu tháng nhỏ hơn 1 thì sửa tháng lại là 1
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbthang_Leave(object sender, EventArgs e)
        {
            if (tbthang.Text == "" || Convert.ToInt32(tbthang.Text) > 12)
            {
                tbthang.Text = "12";
            }
            if (Convert.ToInt32(tbthang.Text) < 1)
            {
                tbthang.Text = "1";
            }
        }

        /// <summary>
        /// Nếu người dùng chưa nhập (bỏ trống) thì lấy năm là năm hiện tại
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tbnam_Leave(object sender, EventArgs e)
        {
            if (tbnam.Text == "")
            {
                tbnam.Text = DateTime.Now.Year.ToString();
            }
        }

        /// <summary>
        /// Truy cập vào CSDL lấy thông tin cần cho việc báo cáo theo điều kiện tháng, năm vừa nhập
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btxem_Click(object sender, EventArgs e)
        {
            try
            {
                LayDuLieu dl = new LayDuLieu();
                DataSet ds = dl.LayBangDuLieu(@"SELECT LoaiPhong AS [Loại phòng], DoanhThu AS [Doanh thu], TyLe AS [Tỷ lệ (%)]
                    FROM BAOCAODOANHTHU WHERE Thang=" + tbthang.Text + " AND Nam=" + tbnam.Text);
                dataGridView1.DataSource = ds.Tables[0];
                KetNoi.NgatKetNoi();
            }
            catch { }
        }

        /// <summary>
        /// Gọi sự kiện chọn button Xem
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void fBaoCaoDoanhThu_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
                btxem.PerformClick();
        }

        /// <summary>
        /// Cập nhật tình trạng đăng nhập của người dùng
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void timer_Tick(object sender, EventArgs e)
        {
            if (MainForm.ktdangnhap != _ktdangnhap)
            {
                fBaoCaoDoanhThu_Load(sender, e);
            }
        }
    }
}
